package com.ncmmall.domain.business.live;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ncmmall.domain.security.user.WebUser;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.persistence.*;
import java.sql.Timestamp;

/**
 * 直播(主播)提现记录
 */
@Entity
@Table(name = "business_live_withdraw")
@Getter
@Setter
@Accessors(chain = true)
public class LiveWithdraw {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    /**
     * 提现人
     */
    @OneToOne
    @JsonIgnore
    private WebUser user;

    /**
     * 提现金额
     */
    private double money;

    /**
     * 提现方式
     * 1、微信
     * 2、银行卡
     */
    private int payType;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp createTime;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 银行卡号
     */
    private String bankCardNo;

    /**
     * 银行省
     */
    private String bankProvince;

    /**
     * 银行城市
     */
    private String bankCity;

    /**
     * 银行支行
     */
    private String bankSubBranch;

    /**
     * 银行开户人
     */
    private String bankAccoutName;

    /**
     * 状态
     * 1、待支付
     * 2、支付中
     * 3、拒绝提现
     * 4、支付完成
     * 5、支付失败
     */
    private int status;

    /**
     * 审核时间
     */
    private Timestamp checkTime;

    /**
     * 审核备注
     */
    private String note;

    /**
     * 审核人
     */
    @OneToOne
    @JsonIgnore
    private WebUser checkUser;

    /**
     * 转账时间
     */
    private Timestamp payTime;

    /**
     * 转账凭证(照片)
     */
    private String payImage;

    /**
     * 转账人
     */
    @OneToOne
    @JsonIgnore
    private WebUser payUser;

    @OneToOne
    private LiveWithdrawPayRecord record;

    /**
     * 银行卡id
     */
    @Transient
    private Long bankCardId;

}
